# Run Coordinators

In production Dagster deployments, there are often many runs being launched at once. The _run coordinator_ lets you control the policy that Dagster uses to manage the set of runs in your deployment. When you submit a run from Dagit or the Dagster command line, it is first sent to the run coordinator, which applies any limits or prioritization policies before eventually sending it to the [run launcher](/overview/pipeline-runs/run-launcher) to be launched.

## Configuring your Run Coordinator

The following run coordinators can be configured on your [Dagster instance](/overview/instances/dagster-instance):

### DefaultRunCoordinator

The <PyObject module="dagster.core.run_coordinator" object="DefaultRunCoordinator" /> simply calls `launch_run` on the instance's run launcher immediately in the same process, without applying any limits or prioritization rules. With this run coordinator set, clicking `Launch Run` in Dagit will cause the run to immediately launch from the Dagit process. Similarly, scheduled runs will launch immediately from the scheduler process.

### QueuedRunCoordinator

The <PyObject module="dagster.core.run_coordinator" object="QueuedRunCoordinator" /> sends runs to the [Dagster Daemon](/overview/daemon) via a queue. The daemon pulls from the queue, and calls `launch_run` on the submitted runs. Using this run coordinator enables instance-level [limits on run concurrency](/overview/pipeline-runs/limiting-run-concurrency), as well as custom run prioritization rules.
